# 作者: 薛文寅仟
# 2024年12月30日17时34分38秒
# 5443912@qq.com
class HouseItem:
    """
     初始化方法
     :param name: 家具名字
     :param area: 家具占地面积
     """

    def __init__(self, name, area):
        self.name = name
        self.area = area

    def __str__(self):
        return f'[{self.name}],占地{self.area:.2f}m^2'


class House:
    """
    房子初始化方法
    :param house_type:房间类型
    :param area:房间大小
    """

    def __init__(self, house_type, area):
        self.house_type = house_type
        self.area = area

        # 剩余可用面积
        self.free_area = area

        # 家具名称列表
        self.item_list = []

    def __str__(self):
        return f"户型:{self.house_type}\n,总面积:{self.area:.2f}[剩余{self.free_area:.2f}]\n,家具:{self.item_list}"

    def add_item(self, item: HouseItem):
        """
        添加家具
        """
        print(f"要添加{item}")
        # 1 判断家具面积是否大于剩余面积
        if item.area > self.free_area:
            print(f"{item.name}的面积太大，不能添加到房子中")
            return
        # 2 将家具名称追加到列表中
        self.item_list.append(item.name)
        # 3 计算剩余面积
        self.area -= item.area


if __name__ == '__main__':
    # 实例化家具
    bed = HouseItem("席梦思", 4)
    chest = HouseItem("衣柜", 2)
    table = HouseItem("餐桌", 1.5)
    print(bed)
    print(chest)
    print(table)
    # 实例化房间
    my_home = House("两室一厅", 60)
    my_home.add_item(bed)
    my_home.add_item(chest)
    my_home.add_item(table)
    print(my_home)
